#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

int main() {
    pid_t original_pid = getpid(); // 保存原始父进程的PID

    fork(); // 第一次fork
    fork(); // 第二次fork
    fork(); // 第三次fork

    printf("hello\n"); // 所有进程都会执行这一行

    // 仅原始父进程等待所有子进程
    if (getpid() == original_pid) {
        while (wait(NULL) != -1); // 阻塞直到所有子进程退出
    }

    return 0;
}






















//#include<stdio.h>
//#include<sys/types.h>
//#include<unistd.h>
//
//int main()
//{
//    fork();
//    fork();
//    fork();
//    printf("hello\n");
//    return 0;
//}
